package _go

//思路比较简单  模拟栈的方式   逐个比较  和栈顶相同则删除栈顶 返回最后的栈

//需要特别注意的是 string是可以range的 并且只返回一个值  index 同时 S[index] 返回的是byte  打印的时候需要用%c输出
func removeDuplicates(S string) string {
	if S == "" {
		return S
	}
	str := []byte{}
	for i := range S {
		if len(str) > 0 && str[len(str)-1] == S[i] {
			str = str[:len(str)-1]
		} else {
			str = append(str, S[i])
		}
		// fmt.Printf("%s \n",str)
	}
	return string(str)
}
